package com.haisen.service;


import java.util.Map;

/**
 * ETL处理引擎
 * ETL，是英文Extract-Transform-Load的缩写，用来描述将数据从来源端经过萃取（extract）、
 * 转置（transform）、加载（load）至目的端的过程
 */
public interface ETLEngineService {


    /**
     * 调用ETL三个过程数
     * @param location hdfs存储的目录
     * @param sourceFile 数据源文件
     * @param  tableName 表格名称
     */
    void process(String sourceFile,String location,String tableName,String cdate);

    /**
     * 为提高ETL效率，数据在进入ETL系统后的EXF文件都将转换为Flat Text文件格式
     * 将excel转换成txt，记录保存文件，文本数量，状态
     * @param sourceFile 源文件
     */
    void extract(String sourceFile);

    /**规范化数据
     *经过数据转换，用于直接加载到数据仓库的文本文件，其数据结构与数据仓库中的表定义一致。
     * @param location hdfs存储的目录
     * @param tableName //表格名称，和txt文件名对应出来
     * @param cdate 数据来源日期
     */
    void transform(String location,String tableName,String cdate);

    /**
     * 建立hive表，上传数据，加载数据
     */
    void load();
}
